package cn.edu.sdjzu.knoverse.model.dto.kg;

import cn.edu.sdjzu.knoverse.model.entity.kg.CaseNode;
import cn.edu.sdjzu.knoverse.model.entity.kg.ComponentNode;
import cn.edu.sdjzu.knoverse.model.entity.kg.KnowledgeNode;
import cn.edu.sdjzu.knoverse.model.vo.kg.FileInfoVo;
import lombok.Data;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 案例详情DTO，聚合案例信息、组件信息、文件和知识点
 */
@Data
public class CaseDetailDTO {
    
    /**
     * 案例信息
     */
    private CaseNode caseInfo;
    
    /**
     * 组件列表
     */
    private Set<ComponentNode> components;
    
    /**
     * 组件对应的文件映射关系（key: 组件ID, value: 文件列表）
     * 使用FileInfoVo替代原来的FileNode，包含更完整的文件信息
     */
    private Map<Long, Set<FileInfoVo>> componentFiles;
    
    /**
     * 组件对应的知识点映射关系（key: 组件ID, value: 知识点列表）
     */
    private Map<Long, Set<KnowledgeNode>> componentKnowledge;
} 